class HttpRequest {
  constructor(config = {}) {
    this.defaultConfig = {
      baseUrl: '',
      timeout: 60000, // 请求超时时间（毫秒）
      header: {
        'Content-Type': 'application/json'
      },
      ...config // 合并用户传入的默认配置
    };
  }

  async request(method, url, data = {}, config = {}) {
    // 合并默认配置和当前请求的自定义配置
    const mergedConfig = {
      ...this.defaultConfig,
      ...config
    };

    // 拼接完整请求地址（支持绝对地址和相对地址）
    const fullUrl = url.startsWith('http') ? url : `${mergedConfig.baseUrl}${url}`;

    // 构建请求配置
    let requestConfig = {
      url: fullUrl,
      method: method.toUpperCase(), // 确保请求方法为大写（如 GET/POST）
      data,
      timeout: mergedConfig.timeout,
      header: {
        ...mergedConfig.header, // 继承默认请求头
        ...(config.header || {}) // 合并当前请求的自定义请求头
      }
    };

    // 从本地存储获取 token 并添加到请求头
    const token = uni.getStorageSync('token');
    if (token) {
      requestConfig.header.Token = `${token}`// 简化字符串拼接（无需 ${}）
    }

    return new Promise((resolve, reject) => {
      // 显示加载提示
      uni.showLoading({
        title: '数据加载中!'
      })

      // 发起 uni-app 原生请求
      const requestTask = uni.request({
        ...requestConfig,
        success: async (response) => {
          // 只返回响应体中的 data 部分（根据需求可调整）
          resolve(response.data);
        },
        fail: (error) => {
          // 统一错误格式
          reject({
            code: 'NETWORK_ERROR',
            message: '网络请求失败',
            error
          });
        },
        complete() {
          // 延迟 1 秒隐藏加载提示（避免闪烁）
          setTimeout(() => {
            uni.hideLoading();
          }, 1000);
        }
      });
    });
  }
  // GET 请求快捷方法（参数通过 data 传递，uni.request 会自动拼接到 url）
get(url, params = {}, config = {}) {
  return this.request('GET', url, params, config);
}

// POST 请求快捷方法
post(url, data = {}, config = {}) {
  return this.request('POST', url, data, config);
}

}


// 接口基础地址（根据环境注释切换）
// export const baseUrl = 'https://xsgl.hbhgkj.edu.cn/api/webApp'
// export const baseUrl = 'https://hkqnyd.hbhgkj.edu.cn/api/mini'
export const baseUrl = 'http://172.18.1.175:9093/api/mini'

// export const baseUrl = 'http://121.40.136.253:9089/api/webApp' // 修正：原地址多了一个点

// 创建 HttpRequest 实例并导出
const http = new HttpRequest({
  baseUrl,
});
export default http;// 修正：原语法错误（dafault → default）